#ifndef _DAISY_NEWTONPHYSICS_MANAGER_H__
#define _DAISY_NEWTONPHYSICS_MANAGER_H__

#include "NewtonPhysicsConfig.h"
#include <daisy\Singleton.h>

#include <daisy\SystemInterface.h>
namespace OgreNewt
{
class World;
}


namespace DAISY
{

typedef boost::scoped_ptr<OgreNewt::World> OgreNewtWorldPtr;
class _DaisyNewtonPhysicsExport OgreNewtManager : public Tools::Singleton<OgreNewtManager>
{
public:
	OgreNewtManager(void);
	~OgreNewtManager(void);
	bool init(void);
	void shutdown(void);
	bool update(TimeType i);
	OgreNewt::World * getNewtWorld(void);
	float getPhysicsSpeed();
	void setPhysicsSpeed(float speed);
private:
	OgreNewtWorldPtr _world;
	float _time;
	float _speed;	

};

SYSTEMUNIT_BEGIN(OgreNewtManager)
SYSTEMUNIT_INIT 
SYSTEMUNIT_UPDATE 
SYSTEMUNIT_SHUTDOWN 
SYSTEMUNIT_END(OgreNewtManager)
}




#endif